/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pacoteframe;

import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author 12141000464
 */
@Entity
@Table(name = "tb_cliente", catalog = "db_plastek", schema = "")
@NamedQueries({
    @NamedQuery(name = "TbCliente.findAll", query = "SELECT t FROM TbCliente t"),
    @NamedQuery(name = "TbCliente.findByIdCliente", query = "SELECT t FROM TbCliente t WHERE t.idCliente = :idCliente"),
    @NamedQuery(name = "TbCliente.findByNomeCliente", query = "SELECT t FROM TbCliente t WHERE t.nomeCliente = :nomeCliente"),
    @NamedQuery(name = "TbCliente.findByFantasiaCliente", query = "SELECT t FROM TbCliente t WHERE t.fantasiaCliente = :fantasiaCliente"),
    @NamedQuery(name = "TbCliente.findByTel1Cliente", query = "SELECT t FROM TbCliente t WHERE t.tel1Cliente = :tel1Cliente"),
    @NamedQuery(name = "TbCliente.findByTel2Cliente", query = "SELECT t FROM TbCliente t WHERE t.tel2Cliente = :tel2Cliente"),
    @NamedQuery(name = "TbCliente.findByTipoCliente", query = "SELECT t FROM TbCliente t WHERE t.tipoCliente = :tipoCliente"),
    @NamedQuery(name = "TbCliente.findByCnpjCliente", query = "SELECT t FROM TbCliente t WHERE t.cnpjCliente = :cnpjCliente"),
    @NamedQuery(name = "TbCliente.findByIeCliente", query = "SELECT t FROM TbCliente t WHERE t.ieCliente = :ieCliente"),
    @NamedQuery(name = "TbCliente.findByEmailCliente", query = "SELECT t FROM TbCliente t WHERE t.emailCliente = :emailCliente"),
    @NamedQuery(name = "TbCliente.findByCidadeCliente", query = "SELECT t FROM TbCliente t WHERE t.cidadeCliente = :cidadeCliente"),
    @NamedQuery(name = "TbCliente.findByEnderecoCliente", query = "SELECT t FROM TbCliente t WHERE t.enderecoCliente = :enderecoCliente"),
    @NamedQuery(name = "TbCliente.findByBairroCliente", query = "SELECT t FROM TbCliente t WHERE t.bairroCliente = :bairroCliente")})
public class TbCliente implements Serializable {
    @Transient
    private PropertyChangeSupport changeSupport = new PropertyChangeSupport(this);
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_cliente")
    private Integer idCliente;
    @Basic(optional = false)
    @Column(name = "nome_cliente")
    private String nomeCliente;
    @Column(name = "fantasia_cliente")
    private String fantasiaCliente;
    @Column(name = "tel1_cliente")
    private String tel1Cliente;
    @Column(name = "tel2_cliente")
    private String tel2Cliente;
    @Column(name = "tipo_cliente")
    private String tipoCliente;
    @Column(name = "cnpj_cliente")
    private String cnpjCliente;
    @Column(name = "ie_cliente")
    private String ieCliente;
    @Column(name = "email_cliente")
    private String emailCliente;
    @Basic(optional = false)
    @Column(name = "cidade_cliente")
    private int cidadeCliente;
    @Column(name = "endereco_cliente")
    private String enderecoCliente;
    @Column(name = "bairro_cliente")
    private String bairroCliente;

    public TbCliente() {
    }

    public TbCliente(Integer idCliente) {
        this.idCliente = idCliente;
    }

    public TbCliente(Integer idCliente, String nomeCliente, int cidadeCliente) {
        this.idCliente = idCliente;
        this.nomeCliente = nomeCliente;
        this.cidadeCliente = cidadeCliente;
    }

    public Integer getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(Integer idCliente) {
        Integer oldIdCliente = this.idCliente;
        this.idCliente = idCliente;
        changeSupport.firePropertyChange("idCliente", oldIdCliente, idCliente);
    }

    public String getNomeCliente() {
        return nomeCliente;
    }

    public void setNomeCliente(String nomeCliente) {
        String oldNomeCliente = this.nomeCliente;
        this.nomeCliente = nomeCliente;
        changeSupport.firePropertyChange("nomeCliente", oldNomeCliente, nomeCliente);
    }

    public String getFantasiaCliente() {
        return fantasiaCliente;
    }

    public void setFantasiaCliente(String fantasiaCliente) {
        String oldFantasiaCliente = this.fantasiaCliente;
        this.fantasiaCliente = fantasiaCliente;
        changeSupport.firePropertyChange("fantasiaCliente", oldFantasiaCliente, fantasiaCliente);
    }

    public String getTel1Cliente() {
        return tel1Cliente;
    }

    public void setTel1Cliente(String tel1Cliente) {
        String oldTel1Cliente = this.tel1Cliente;
        this.tel1Cliente = tel1Cliente;
        changeSupport.firePropertyChange("tel1Cliente", oldTel1Cliente, tel1Cliente);
    }

    public String getTel2Cliente() {
        return tel2Cliente;
    }

    public void setTel2Cliente(String tel2Cliente) {
        String oldTel2Cliente = this.tel2Cliente;
        this.tel2Cliente = tel2Cliente;
        changeSupport.firePropertyChange("tel2Cliente", oldTel2Cliente, tel2Cliente);
    }

    public String getTipoCliente() {
        return tipoCliente;
    }

    public void setTipoCliente(String tipoCliente) {
        String oldTipoCliente = this.tipoCliente;
        this.tipoCliente = tipoCliente;
        changeSupport.firePropertyChange("tipoCliente", oldTipoCliente, tipoCliente);
    }

    public String getCnpjCliente() {
        return cnpjCliente;
    }

    public void setCnpjCliente(String cnpjCliente) {
        String oldCnpjCliente = this.cnpjCliente;
        this.cnpjCliente = cnpjCliente;
        changeSupport.firePropertyChange("cnpjCliente", oldCnpjCliente, cnpjCliente);
    }

    public String getIeCliente() {
        return ieCliente;
    }

    public void setIeCliente(String ieCliente) {
        String oldIeCliente = this.ieCliente;
        this.ieCliente = ieCliente;
        changeSupport.firePropertyChange("ieCliente", oldIeCliente, ieCliente);
    }

    public String getEmailCliente() {
        return emailCliente;
    }

    public void setEmailCliente(String emailCliente) {
        String oldEmailCliente = this.emailCliente;
        this.emailCliente = emailCliente;
        changeSupport.firePropertyChange("emailCliente", oldEmailCliente, emailCliente);
    }

    public int getCidadeCliente() {
        return cidadeCliente;
    }

    public void setCidadeCliente(int cidadeCliente) {
        int oldCidadeCliente = this.cidadeCliente;
        this.cidadeCliente = cidadeCliente;
        changeSupport.firePropertyChange("cidadeCliente", oldCidadeCliente, cidadeCliente);
    }

    public String getEnderecoCliente() {
        return enderecoCliente;
    }

    public void setEnderecoCliente(String enderecoCliente) {
        String oldEnderecoCliente = this.enderecoCliente;
        this.enderecoCliente = enderecoCliente;
        changeSupport.firePropertyChange("enderecoCliente", oldEnderecoCliente, enderecoCliente);
    }

    public String getBairroCliente() {
        return bairroCliente;
    }

    public void setBairroCliente(String bairroCliente) {
        String oldBairroCliente = this.bairroCliente;
        this.bairroCliente = bairroCliente;
        changeSupport.firePropertyChange("bairroCliente", oldBairroCliente, bairroCliente);
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCliente != null ? idCliente.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof TbCliente)) {
            return false;
        }
        TbCliente other = (TbCliente) object;
        if ((this.idCliente == null && other.idCliente != null) || (this.idCliente != null && !this.idCliente.equals(other.idCliente))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "pacoteframe.TbCliente[ idCliente=" + idCliente + " ]";
    }

    public void addPropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.addPropertyChangeListener(listener);
    }

    public void removePropertyChangeListener(PropertyChangeListener listener) {
        changeSupport.removePropertyChangeListener(listener);
    }
    
}
